N/A
N/A
The present invention relates generally to computer based information management systems, and more specifically to a system for representing, storing, and retrieving product information.
In order to effectively market their products, product manufacturers must communicate product information to many parties, including product information aggregators such as on-line retailers or catalog suppliers, procurement partners within business to business procurement networks, prospective product purchasers (xe2x80x9cconsumersxe2x80x9d), and others. A significant problem exists related to managing and storing large amounts of product information in a way that allows the information to be conveniently updated, while also enabling the information supplier to provide the information to multiple receiving parties in multiple formats, such that the information may be conveniently utilized for a variety of different, specific purposes.
In some existing systems, an information aggregator may collect product information from one or more information suppliers, and then store the information using a relational database (RDBMS) system, such as those provided by various RDBMS suppliers. In these existing systems, the information aggregator predefines a number of tables and columns which define how the information is to be stored and accessed. Generally, product information for a given product occupies a row or xe2x80x9centryxe2x80x9d within a predefined table, and the predefined columns define the searchable attributes of the populated database. Often, the set of predefined columns cannot be modified after the database is populated without a special operation that must be performed by a system administrator. It is difficult, however, to determine a set of columns that are appropriate across different versions of a given product. It is even more difficult to determine a set of columns that are appropriate for a group of supposedly xe2x80x9crelatedxe2x80x9d products, which may be provided by different manufacturers. Additionally, it may be desirable to dynamically provide a specific xe2x80x9ccustomizedxe2x80x9d information organization for a particular product, for example to reflect its xe2x80x9cproprietaryxe2x80x9d features or some fundamental differences between it and competing products. These problems are exacerbated by the fact that significant product features or product characteristics may change over time, for example, due to new revisions or releases of the products. Moreover, for marketing purposes, different product manufacturers often seek to place emphasis on different features or product characteristics of their products with respect to competing products. Existing RDBMS solutions further assume that ordering of the data they store is implicit in the data, as may be obtained by sorting the names of people alphabetically. However, in some cases, the information supplier may desire to specify a data ordering that is content independent.
Some existing systems have responded to these complex problems by forcing large amounts of product information into a single column, sometimes referred to as the xe2x80x9cdetailed descriptionxe2x80x9d of the product. In one example of such an approach, only the detailed description column and a part number column are provided as searchable attributes for each product entry. With this type of existing system, targeted searching to identify and/or compare product features is very difficult. Even searching for matching text strings within the detailed description column is often ineffective, due to the use of different terminology for comparable features by different product manufacturers, and due to changes in terminology over time.
When product information aggregators provide static, pre-formatted tables of product information with a predetermined set of attribute columns, such predetermined columns cannot generally be dynamically controlled or configured, for example by the product manufacturers. Such systems also fail to provide a convenient mechanism for product information suppliers to dynamically modify individual product entries within the tables. In particular, while well understood features or product characteristics can be reflected to some extent by such predefined tables, no convenient mechanism is typically provided in existing systems for dynamically adding proprietary features or characteristics of a given product or product category to column definitions or headings.
Accordingly it would be desirable to have a system for product information maintenance and storage which permits product information suppliers to conveniently update the information regarding particular products, as well as the way such information may be referenced and or retrieved. The system should further be capable of providing the information to a variety of publishing destinations, such as product aggregators, procurement partners, and/or consumers, in a way that enables effective product feature research and/or comparison.
In accordance with the present invention, a system and method for storing related data is disclosed. The disclosed system treats all information it receives and stores as a number of discrete xe2x80x9cconceptsxe2x80x9d. The system receives a number of concepts related to the data to be stored, such as product names, product categories, and/or product characteristics, forms a number of relationships linking the concepts together, and then represents the data in a way reflecting both the concepts and the relationships between the concepts. The relationships formed by the disclosed system include a number of independent aspects which add useful levels of meaning to the way the information is organized. One aspect of the relationships formed between concepts reflects application specific meanings that may be applied to individual relationships. Accordingly, the relationships provided in any specific embodiment of the disclosed system are defined to reflect a specific application of the system, such as, for example, a catalog service for receiving, storing, and publishing product-related information.
In general, relationships may be formed to distinguish a subset of concepts from other concepts stored within a common data structure. In a tree data structure, relationships may be provided indicating that a number of concepts are distinguishable from other concepts within the same tree data structure, and which are stored as children of a common parent node. An ordering aspect of a relationship may also be provided indicating an ordering of child concepts under a common parent node within the tree. Because application specific meanings provided by the relationships may be defined to support various specific applications, the disclosed system is applicable to any kind of information storage and retrieval application. Accordingly, while the illustrative embodiments are described in connection with a product information application, the present invention is not limited to such an application, and may be applied advantageously to any data storage and retrieval application which seeks to provide a meaningful representation of data.
In an illustrative embodiment for storage and retrieval of product information, the disclosed system receives and stores concepts describing product information in a way that enables information suppliers to conveniently and dynamically add to and/or modify those stored concepts. The disclosed system may further be employed to organize the information it receives in a way that reflects both shared attributes and proprietary concepts related to various products. In an illustrative embodiment, a set of concepts is first obtained, as well as associated concept names. Such concepts and associated names may, for example, originate in part or in whole a priori through a committee process in which various product manufacturers provide input and are permitted to vote on a resulting shared concept set. Such predetermined concepts are referred to herein as xe2x80x9csharedxe2x80x9d concepts. xe2x80x9cPrivatexe2x80x9d concepts may also be obtained from individual information providers. The resulting concept set is then employed to generate the relationships used in the disclosed system. In an illustrative embodiment, a unique identifier is assigned to each of the concepts in the resulting concept set.
When the system has been xe2x80x9cinitializedxe2x80x9d with the appropriate predetermined concept set, for example including a number of shared concepts, a product information supplier can begin the process of entering product information for one or more products. The product information supplier may optionally indicate a subset of a predetermined, shared concept set which should be applied to certain product information it provides or has provided. The product information supplier may further optionally provide one or more private concepts, for example associated with a private concept name, that are also to be applied to the storage organization and accessibility of certain associated product information. In the case where one or more private concepts are provided, the disclosed system may also then assign a unique identifier to each of the provided private concepts.
In order to store the product information, a set of relationships are formed which reflect an information model, and which are determined in response to both the content and context of the received concept set. As a result, the information model can be populated with product information in a way that stores the provided concepts in a useful and meaningful way. The relationships linking various ones of the received concepts include a number of aspects, and impose application specific meanings on portions of an information structure reflecting the information model.
A xe2x80x9crelating conceptxe2x80x9d aspect of a relationship, allows for dynamic modification of an information structure without the need to modify a priori defined information, such as predetermined application specific meanings. Thus the xe2x80x9crelating conceptxe2x80x9d aspects of relationships are determined based on explicit or implicit inputs received from users of the disclosed system. The xe2x80x9crelating conceptxe2x80x9d aspect of a relationship may be used to indicate that a relationship is applicable within a specified information structure, such as a tree. The xe2x80x9crelating conceptxe2x80x9d aspect of a relationship may also be used to indicate that a particular characteristic value is attached to a product, and further allows extension of an information model to describe one or more product characteristics that are applicable to products within a product category.
The xe2x80x9capplication specific meaningxe2x80x9d aspect of a relationship reflects a selected one of a plurality of predetermined xe2x80x9cmeaningsxe2x80x9d that may be associated with the relationship, and which are determined a priori with regard to use of the system to receive data to be stored. For example, the set of xe2x80x9capplication specific meaningsxe2x80x9d for a given application of the disclosed system may be defined at design time, and reflected by the resulting executable code implementing the system.
In an illustrative embodiment for storing product information, the xe2x80x9capplication specific meaningxe2x80x9d aspect of a relationship indicates certain meanings that are applicable to an information model representing product information. A first such application specific meaning would, for example, indicate that the relationship reflects a xe2x80x9cproduct categoryxe2x80x9d relationship between two concepts. Relationships may thus be formed indicating that a concept is a product category within another concept, such as a catalog tree. Further, the application specific meaning aspect of a relationship may indicate that the relationship reflects xe2x80x9cproductxe2x80x9d relationship between the related concepts. The xe2x80x9cproductxe2x80x9d application specific meaning indicates that a particular concept represents a specific product with respect to another concept, which may be, for example, a product category. A xe2x80x9cproduct characteristicxe2x80x9d application specific meaning may be used to form relationships indicating that a concept is a characteristic or feature of each product within a product category. Relationships indicating the xe2x80x9cproduct characteristicxe2x80x9d application specific meaning may then be used to determine what characteristics should be specified when product information is being entered for a product within a given product category.
Further for purposes of example, an illustrative xe2x80x9cpossible valuexe2x80x9d application specific meaning may be used to form relationships indicating that a concept is one of potentially several alternative values that may be associated with another concept. Such a xe2x80x9cpossible valuexe2x80x9d relationship may be used to prompt a user of the system with a number of alternative values that may be input in association with a particular product feature or characteristic.
Another independent aspect of a relationship allows a data independent ordering to be specified between the two related concepts. For example, where a first object is indicated by a first relationship to be a parent to a second concept, and by a second relationship to be a parent of a third concept, the independent ordering aspects of the first and second relationships may be used to indicate an ordering between the second and third concepts. Such an ordering may be used when displaying the various concepts, for example to ensure that the third concept is always displayed prior to or ahead of the second concept.
While a number of examples of application specific meanings are provided herein with regard to an illustrative embodiment for maintaining product information in a catalog service, it will be recognized by one of ordinary skill in the art that other application specific meanings may be generated for specific applications of the disclosed system, and that the present invention is not limited to the illustrative embodiments described herein.
Further in an illustrative embodiment, the information model reflecting the various concepts and relationships is used to generate an information structure for storing the received product information. For purposes of illustration, the illustrative information structure organizes the product information as an N-tree data structure. In such an embodiment, the relationships between concepts additionally indicate a parent-child relationship between the two concepts linked by the relationship, for example, as indicated by way of the application specific meaning aspect of the relationship. However, those skilled in the art will recognize that the invention is not limited to such an embodiment, and any other suitable data structure may be employed. Moreover, product information concepts used to populate such a data structure may be indicated by, identified by, or received from a user through a variety of interfaces, including World Wide Web-enabled, Internet browser based graphical user interfaces (GUIs).
In this way there is disclosed a system for product information maintenance and storage which permits information suppliers to conveniently update information, for example information regarding particular products, as well as the attributes which control how such information may be referenced and or retrieved. The disclosed system can be used to publish product information to a variety of publishing destinations, in a way that enables the information to be conveniently formatted into a variety of specific catalogs, and which enables different information consumers, such as product information aggregators, to use the information in a variety of ways.